(1) Field of the Invention
This invention relates to a method for generating language specific computer code, and more particularly to an object oriented based methodology for defining business functionality in a neutral format from which language specific code can be generated.
(2) Description of the Related Art
The proliferation of architected computer systems to facilitate and automate electronic transactions has given rise to a plurality of hardware and software platforms upon which such transactions are enabled. In a typical client/server transaction it is quite possible that the client component is coded in a software language and executed on a hardware platform which are both different from the hardware platform upon which the server component is executing as well as the computer language in which the server executable component is written. As a result, it often times necessary to overcome technical hurdles when attemting to perform even the simplest of transactions between architected computer system components which are not technology congruent.
With the advent of internet communication and attendant internet browsers such as Internet Explorer(trademark) by Microsoft Corporation of Redmond, Calif., there has been established an infrastructure for the creation and execution of electronic and computer transactions which is largely hardware and software independent. Most internet browsers are created to run in a similar manner on a variety of hardware platforms and exchange information coded in a language such as JAVASCRIPT or Hypertext Markup Language (HTML). JAVASCRIPT and HTML allow for the detailed definition of web pages with embedded logical code capable of interacting with other system components in connectivity with the internet without the need to ascertain the specific nature of such other systems.
However, while a level of uniformity has been attained through the widespread use of internet applications, there exists still a plurality of internet browser languages. It is therefore still necessary to translate code into a plurality of different browser languages in order to allow maximum access to an internet enabled executable. In addition to merely translating existing code into a plurality of different languages, it is also desirable to alter the functionality of code during the translation process to make maximal use of the variations amongst different languages which provide differing functionality.
However, such alterations are quite difficult owing to the fact that the repositories in which logic is stored for an application, and from which code may be generated, often times represent dicreet units of business functionality in a manner which does not lend itself to the complex task of understanding the relationships existing between each one of such units and using such relationships to maximize the efficiencies of generated code.
What is needed therefore is a method for storing the business objects which form a model for business functionality from which may be generated code. Such code, when executed on an internet enabled platform, will enable the modeled business functionality to be performed regardless of the hardware of software platforms upon which the code is executed. In addition, such code should be capable of being generated into a plurality of computer languages and should not require alterations to the methodology by which the underlying business objects are modeled.
Accordingly, one aspect of the present invention is drawn to a method of generating language specific code comprising the steps of extracting neutral code from a knowledge base, preprocessing the neutral code, providing a code generator with the preprocessed neutral code and a target language in to which the preprocessed neutral code is to be translated, and processing the preprocessed neutral code by translating the neutral code into a target language code.
Yet another aspect of the present invention is drawn to the aforementioned method wherein the code generator comprises a generator comprising the logical rules which form the target language, and a tech blade component comprising the syntax of the target language.
Yet another aspect of the present invention is drawn to the aforementioned method wherein processing the preprocessed code comprises the step of invoking a code generator to translate the neutral code into target language code.
Yet another aspect of the present invention is drawn to the aforementioned method wherein translating the neutral code into target language code comprises the steps of requesting syntactic information from a tech blade, and combining the structure of the neutral code with the syntactic information.
Still another aspect of the present invention is drawn to the aforementioned method wherein the preprocessing of the neutral code comprises the step of removing space characters from variable names.
Yet another aspect of the present invention is drawn to the aforementioned method wherein the preprocessing of the neutral code comprises the step of resolving variable scope conflicts.
Yet another aspect of the present invention is drawn to the aforementioned method wherein the preprocessing of the neutral code comprises the step of interactively alerting a user of possible undefined or misdefined variables.
Yet another aspect of the present invention is drawn to the aforementioned method wherein the code generator is stored as a dynamic link library (DLL).
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.